<%--
  Created by IntelliJ IDEA.
  User: 98114
  Date: 2022/2/11
  Time: 15:56
  To change this template use File | Settings | File Templates.
--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- 为了使用 Spring 表单绑定库，需要在 JSP 页面中对其进行声明，前缀的名称可以任意取 -->
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" session="false" %>
<html>
<head>
    <title>Spitter</title>
    <link rel="stylesheet" href="<c:url value="/resources/style.css" />">
</head>
<body>
    <h1>Register</h1>
    <!-- <%-- <sf:form> --%> 会渲染成一个 HTML<form> 标签，但它也会通过 modelAttribute 或 commandName 属性构建针对某个模型对象的上下文信息。
    在其他的表单绑定标签中，会引用这个模型对象的属性。-->
    <sf:form method="post" modelAttribute="spitter">
        <!-- 这个标签会渲染成一个 HTML<input> 标签，并且 type 属性将会设置为 text。我们在这里设置了 path 属性，<input> 标签的 value 属性值
        将会设置为模型对象中 path 属性所对应的值。-->
        <sf:label path="firstName" cssErrorClass="error">First Name</sf:label><sf:input path="firstName" cssErrorClass="error"></sf:input>
        <!-- 在这里，它的 path 属性设置成了 firstName，也就是指定了要显示 Spitter 模型对象中哪个属性的错误。如果 firstName 属性没有错误的话，
        那么 <%-- <sf:errors> --%> 不会渲染任何内容。但如果有校验错误的话，那么它将会在一个 HTML<span> 标签中显示错误信息。-->
        <sf:errors path="firstName"></sf:errors><br/>
        <sf:label path="lastName" cssErrorClass="error">Last Name</sf:label><sf:input path="lastName" cssErrorClass="error"></sf:input>
        <sf:errors path="lastName"></sf:errors><br/>
        <sf:label path="username" cssErrorClass="error">Username</sf:label><sf:input path="username" cssErrorClass="error"></sf:input>
        <sf:errors path="username"></sf:errors><br/>
        <sf:label path="password" cssErrorClass="error">Password</sf:label><sf:input path="password" cssErrorClass="error"></sf:input>
        <sf:errors path="password"></sf:errors><br/>
        <!-- 将所有的错误信息在同一个地方进行显示。path 被设置成了 “*”。这是一个通配符选择器，会告诉<%--<sf:errors>--%>展现所有属性的所有错误。
        将 element 属性设置成了 div 表示错误会渲染在一个 <div> 标签中 -->
        <sf:errors path="*" element="div" cssClass="errors"></sf:errors>
        <input type="submit" value="Register" />
    </sf:form>
</body>
</html>
